#include "stm32f10x.h"

/*
    需要引入IWDG库函数
    IWDG中有PR[2:0]、KR[15:0]、RLR[11:0]寄存器
    IWDG独立看门狗使用独立与主时钟的LSI低速时钟,40KHz
	在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。此时计数器开始从其复位值0XFFF递减，当计数器数到尾值0X000时产生复位信号
    无论何时，只要在IWDG_KR中写入0XAAAA(喂狗)，则自动重装载寄存器(IWDG_RLR)的值会重新加载到计数器，避免看门狗复位
    当程序异常时就无法正常喂食，看门狗将系统复位

    重装载寄存器(IWDG_RLR)和预分频寄存器(IWDG_PR)都具有写入保护功能，要操作要先取消写入保护，在键值寄存器(IWDG_KR)中写入0x5555取消写入保护
    预分频寄存器(IWDG_PR)有3位，分频因子=2^(IWDG_PR+2)
*/

void IWDG_Init(u8 prer,u16 rlr){
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);	//取消写入保护，往KR中写入0X5555,还有IWDG_WriteAccess_Disable(0x0000)，则是开启保护
	IWDG_SetPrescaler(prer);	//设置预分频系数为4
	IWDG_SetReload(rlr);	//设置重装载值
	IWDG_ReloadCounter();	//喂狗
	IWDG_Enable();	//看门狗使能，往KR中写入0xcccc
}
